package com.hqully.labmanage.service;

import com.github.pagehelper.PageInfo;
import com.hqully.labmanage.domain.entity.Student;
import com.hqully.labmanage.domain.dto.StudentDTO;
import com.hqully.labmanage.domain.dto.PageDTO;

import java.util.List;

/**
 * <p>
 * 针对数据库表[studentDTO]的操作Service
 * </p>
 *
 * @entity {@link StudentDTO}
 * @date 2022-10-08 10:05:24 <br>
 * @author hqully <br>
 * @version 1.0
 */

public interface StudentService {

     /**
      * <p>
      *     根据[studentDTO]的参数分页条件查询学生列表
      * </p>
      * @param page    分页参数
      * @param studentDTO 查询对象条件参数
      * @return {@link PageInfo<StudentDTO>} 学生DTO分页列表
      * @date 2022-10-08 10:05:24 <br>
      * @author hqully <br>
      */
     PageInfo<StudentDTO> pageStudents(PageDTO page, StudentDTO studentDTO);


     /**
      * <p>
      *     根据[studentDTO]的参数条件查询学生
      * </p>
      * @param studentDTO 查询对象
      * @return {@link List<StudentDTO>} 学生DTO列表
      * @date 2022-10-08 10:05:24 <br>
      * @author hqully <br>
      */
     List<StudentDTO> listStudents(StudentDTO studentDTO);


     /**
      * <p>
      *     添加学生
      * </p>
      * @param studentDTO 学生DTO
      * @return {@link int}
      * @date 2022-10-08 10:05:24 <br>
      * @author hqully <br>
      */
     int addStudent(StudentDTO studentDTO);

     /**
      * <p>
      *     更新学生
      * </p>
      * @param studentDTO 学生DTO
      * @return {@link int}
      * @date 2022-10-08 10:05:24 <br>
      * @author hqully <br>
      */
     int updateStudent(StudentDTO studentDTO);


     /**
      * <p>
      *     通过[id]删除学生
      * </p>
      * @param id 学生id
      * @return {@link int}
      * @date 2022-10-08 10:05:24 <br>
      * @author hqully <br>
      */
     int deleteStudentById(Integer id);

}
